零知識證明(zero knowledge proof, ZKP)是由Fiege, Fiat, Shamir(又是他),所提出的一個很神奇的認證機制
Alice想要向Bob證明他知道某項資訊,但是完全不透露那個資訊的內容是什麼,即使Trudy也無法從他們之間的對話得知該資訊
Bob要能夠從與Alice的對話中知道Alice確實擁有該項資訊
ZKP的最簡單版本可以透過洞穴模型來理解
想像以上的洞穴,中間有一個粉紅色的魔法門,需要知道咒語的人才能將門打開
假如Alice說他知道那段咒語,那麼他要如何說服Bob他真的知道咒語,同時避免將咒語的秘密洩漏出去呢?
考慮以下的協定
以上協定會發現,Alice如果不知道咒語,她也有1/2的機率可以通過Bob的檢查
不過當此協定被要求進行n次,Alice可以騙過Bob的機率就會被壓得非常非常小
因此Alice便可在不向Bob透露咒語的情況下,用機率的方式說服Bob她真的懂那個知識